<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="./css/index.css" />
<title>记事本</title>
</head>
<body>

<!-- 主体区域 -->
<section id="app">
  <!-- 输入框 -->
  <header class="header">
    <h1>内卷计划</h1>
    <input placeholder="请输入任务" class="new-todo" v-model="task" />
    <button @click="addTask" class="add">添加任务</button>
  </header>
  <!-- 列表区域 -->
  <section class="main">
    <ul class="todo-list">
      <li class="todo" v-for=" item in taskList " :key="item.id">
        <div class="view">
          <span class="index">{{item.id}}.</span> <label>{{item.task}}</label>
          <button class="destroy" @click="delTask(item.id)"> x </button>
        </div>
      </li>
    </ul>
  </section>
  <!-- 统计和清空 → 如果没有任务了，底部隐藏掉 → v-show -->
  <footer class="footer" v-show="taskList.length > 0">
    <!-- 统计 -->
    <span class="todo-count">合 计:<strong>{{taskList.length}}</strong></span>
    <!-- 清空 -->
    <button class="clear-completed" @click="taskList=[]">
      清空任务
    </button>
  </footer>
</section>

<!-- 底部 -->
<script src="./js/vue2.6.12.js"></script>
<script>
  // 添加功能
  // 1. 通过 v-model 绑定 输入框 → 实时获取表单元素的内容
  // 2. 点击按钮，进行新增，往数组最前面加 unshift

  var app = new Vue({
    el:"#app",
    data:{
      task:'',
      // index:0,
      taskList:[
        {
          id:1,
          task:'红烧肉'
        },
        {
          id:2,
          task:'锅包肉'
        },
        {
          id:3,
          task:'螺蛳粉'
        }
      ]
    },
    methods:{
      addTask(){
        // 添加任务
        // console.log(this.task);
        this.taskList.unshift({
          id:+new Date,
          task:this.task
        })
        this.task = ''
      },
      delTask(id){
        console.log(id);
        //filter  
        // 1.自带遍历数据 
        // 2.可以通过每一次遍历返回true或false来决定当前这个值还要不要
        // 3. 返回新数组
        this.taskList = this.taskList.filter(
          // 会执行 taskList.length 遍
          // return false
          // 表达式 ----> 最终能产生一个值(bool)
          // id 和 当前 遍历得到的 值.id  是否相等
          // ES6 新语法 箭头函数  function(item){}
          item => id !== item.id
        )
      }
    }
  })

</script>
</body>
</html>
